\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{dim. févr. 19 14:44:55 CET 2012}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={OpenSSL - asn1parse},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Parser les structures ASN.1, ou extraire les données ASN.1},
CreationDate={D:20120219144455},
ModDate={D:20120219144455},
Keywords={PKI;sécurité;chiffrement;certificats}
}}
\begin{document}
 
\begin{center}
{\Huge OpenSSL - asn1parse }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Parser les structures ASN.1, ou extraire les données ASN.1}
 
\vspace{10mm}
 
\vspace{1cm}{\huge OPTIONS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -inform DER|PEM]{Format d’entrée (DER : binaire, PEM : base64)}
\item[\hspace{1mm} -in filename]{Fichier d’entrée}
\item[\hspace{1mm} -out filename]{Fichier de sortie où placer les données DER.}
\item[\hspace{1mm} -noout]{Ne sort pas la version parsée du fichier en entrée}
\item[\hspace{1mm} -offset number]{Commence à parser à l’offset spécifié}
\item[\hspace{1mm} -length number]{Nombre d’octets à parser}
\item[\hspace{1mm} -i]{Indenter la sortie en accord avec le "depth" des structures}
\item[\hspace{1mm} -oid filename]{Un fichier contenant un OID additionnel.}
\item[\hspace{1mm} -stdparse offset]{Parse le contenu des octets de l’objet ASN.1 en commençant à l’offset spécifié. Peut être spécifié plusieurs fois.}
\item[\hspace{1mm} -genstr string, -genconf file]{Génère des données encodée basé sur la chaîne ou le fichier spécifié en utilisant le format ASN1\_generate\_nconf}
\end{description}
 
\vspace{1cm}{\huge SORTIE }
 
\
 
\hspace{1mm} La sortie contient des lignes de ce type:
 
{\ttfamily
0:d=0 hl=4 l= 681 prim : SEQUENCE\\ .....\\ 229:d=3 hl=3 l= 141 prim : BIT STRING\\ 373:d=2 hl=3 l= 162 cons : cont \texttt{[} 3 \texttt{]}\\ 376:d=3 hl=3 l= 159 cons : SEQUENCE\\ 379:d=4 hl=2 l= 29 cons : SEQUENCE\\ 381:d=5 hl=2 l= 3 prim : OBJECT\\
}
\vspace{8mm}
 
\hspace{1mm}  Chaque ligne commence avec un offset décimal. \textbf{d=xx} spécifie la profondeur courante. \textbf{hl=XX} donne la longueur d’en-tête du type courant. \textbf{l=XX} donne la longueur du contenu.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} parser un fichier \\
\hspace{1mm} \textbf{openssl asn1parse -in file.pem} \\
\hspace{1mm} parser un fichier DER \\
\hspace{1mm} \textbf{openssl asn1parse -inform DER -in file.der} \\
\hspace{1mm} générer un UTF8String simple \\
\hspace{1mm} \textbf{openssl asn1parse -genstr ’UTF8:Hello World’} \\
\hspace{1mm} Générer un UTF8String, ne pas parser la sortie \\
\hspace{1mm} \textbf{openssl asn1parse -genstr ’UTF8:Hello World’ -noout -out utf8.der} \\
\hspace{1mm} génerer en utilisant un fichier de configuration \\
\hspace{1mm} \textbf{openssl asn1parse -genconf asn1.cnf -noout -out asn1.der} \\
\hspace{1mm} exemple de fichier de configuration \\
\hspace{1mm} \textbf{asn1=SEQUENCE:seq\_sect} \\
\hspace{1mm} \textbf{[seq\_sect]} \\
\hspace{1mm} \textbf{field1=BOOL:TRUE} \\
\hspace{1mm} \textbf{field2=EXP:0, UTF8some random string} \\
\end{flushleft}
\end{document}
